package com.controller;

import com.common.Base;
import com.common.Result;
import com.utils.FileUtil;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;


/**
 * @Author：Luohuiyong
 * @Description:
 * @Date: Created in 10:22 2019/1/11
 */
@RestController
public class FileUploadController {

    /**
     * 上传文件。
     *
     * @param file
     * @return
     * @throws IOException
     */
    @RequestMapping(value = "/upload", method = RequestMethod.POST)
    @ResponseBody
    public Result uploadFile(@RequestParam(value = "file", required = true) MultipartFile file) throws IOException {

        String saveFilePath = "";
        // 判断图片大小是否大于2M
        if (file.getSize() > 2097152) {
            return Base.error("图片大小不能超过2M");
        }
        // 保存相对路径到数据库 图片写入服务器
        if (file != null && !file.isEmpty()) {
            // 获取图片的文件名
            String fileName = file.getOriginalFilename();
            // 获取图片的扩展名
            String extensionName = fileName
                    .substring(fileName.lastIndexOf(".") + 1);
            // 新的图片文件名 = 获取时间戳+"."图片扩展名
            String newFileName = String.valueOf(System.currentTimeMillis())
                    + "." + extensionName;

            try {
                saveFilePath = FileUtil.saveFile(newFileName, file);
            } catch (Exception e) {
                return Base.error("保存图片失败");
            }
        }

        return Base.success(saveFilePath);
    }

//    解决 windows 的 curl 命令执行后返回乱码
//    chcp 65001 就是换成UTF-8代码页
//    chcp 936 可以换回默认的GBK
//    chcp 437 是美国英语
//    在命令行标题栏上点击右键，选择"属性"->"字体",将字体修改为True Type字体"Lucida Console",然后点击确定将属性应用到当前窗口。
}
